/* 
 * UnidadeOperacionalVerificaNullIdRule.java
 * 
 * Data de criação: 13/10/2010
 * 
 * O2 SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.siso.business.rule.unidade.operacional;

import org.springframework.stereotype.Component;

import br.com.o2solutions.core.exception.BusinessException;
import br.com.o2solutions.core.exception.enumerator.ExceptionScope;
import br.com.o2solutions.core.service.rule.Rule;
import br.com.o2solutions.siso.integration.entidade.UnidadeOperacional;
import br.com.o2solutions.util.assertion.Assert;

/**
 * Classe responsável por verificar a referencia do objeto da
 * {@link UnidadeOperacional} quanto ao not null e o preenchimento do id.
 * 
 * @author osvaldeir
 * @since 13/10/2010
 * 
 */
@Component("unidadeOperacionalVerificaNullIdRule")
public class UnidadeOperacionalVerificaNullIdRule implements
		Rule<UnidadeOperacional> {

	/**
	 * {@inheritDoc} Verifica se a {@link UnidadeOperacional} não está nula nem
	 * esta com o seu id nulo. Caso a situação entre em uma dessas afirmações é
	 * lançada uma {@link BusinessException} com a mensagem e a chave referente
	 * a exceção.
	 */
	@Override
	public void check(UnidadeOperacional entity) throws BusinessException {
		Assert.notNull(entity, new BusinessException(
				"A Unidade Operacional não pode ser nula",
				"error.unidade.operacional.null",
				ExceptionScope.BUSINESS_VALIDATION));
		Assert.notNull(entity.getId(), new BusinessException(
				"O Id da Unidade Operacional não pode ser nulo",
				"error.unidade.operacional.id.null",
				ExceptionScope.BUSINESS_VALIDATION));
	}

}
